package com.zzy.app.config;

import com.zzy.app.config.factorybean.ColorFactoryBean;
import com.zzy.app.config.importannotation.MyImportBeanDefinitionRegistrar;
import com.zzy.app.config.importannotation.MyImportSelector;
import com.zzy.app.entity.Color;
import com.zzy.app.entity.Red;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
 * 导入bean的方式
 * 1.包扫描+给组件标注注解（@Controller、@Servcie、@Repository、@Component），但这种方式比较有局限性，局限于我们自己写的类
 * 2.@Bean注解，通常用于导入第三方包中的组件
 * 3.@Import注解，快速向Spring容器中导入一个组件
 * 4.实现FactoryBean接口，它包含一个泛型，注入的bean就是这个泛型类
 */
@Configuration
@Import({Color.class, Red.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class})
public class MainConfig6 {
    @Bean
    public ColorFactoryBean colorFactoryBean() {
        return new ColorFactoryBean();
    }
}
